package academico.ui;

import academico.model.Aluno;
import academico.persistence.AlunoDAOArquivo;
import academico.persistence.AlunoDAO;
import academico.persistence.AlunoDAOPsql;
import academico.persistence.DAOFactory;
import academico.persistence.DAOFactory.Factory;
import java.util.List;

public class App {

    public static String[] menuPrincipal={
        "_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/",
        "_/_/     Menu Principal",
        "_/_/     (1) Adicionar novo Aluno.",
        "_/_/     (2) Listar alunos cadastrados.",
        "_/_/     (3) Atualizar.",
        "_/_/     (4) Remover aluno do cadastro.",
        "_/_/     (0) Sai do sistema.",
        "_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/"
    };


    public static void main(String[] args){
        Menu menu = new Menu();
        DAOFactory fabrica = DAOFactory.getDAOFactory(Factory.File);
        //AlunoDAO alunoDAO = new AlunoDAOPsql();
        AlunoDAO alunoDAO =  fabrica.getAluno();

        boolean runMenuPrincipal = true;

        while(runMenuPrincipal){
            menu.mostraMenu(App.menuPrincipal);
            String str = menu.readInput("Sua escolha:");
            if (str.equals("1")){
                System.out.println("Inclusao de registro");
                String strnome = menu.readInput("Entre com o nome do novo aluno:");
                String strsobrenome = menu.readInput("Entre com o sobrenome do novo aluno:");
                Aluno novoAluno = new Aluno ();
                novoAluno.setNome(strnome);
                novoAluno.setSobrenome(strsobrenome);
                alunoDAO.armazenar(novoAluno);
            }else if (str.equals("2")){
                System.out.println("Lista alunos");
                List<Aluno> lista = alunoDAO.listar();
                for(Aluno aluno : lista){
                    System.out.println(aluno);
                }
            }else if(str.equals("3")){
                System.out.println("Atualiza");
                String strid = menu.readInput("Entre com o id do aluno:");
                Aluno aux = alunoDAO.recuperar(Integer.parseInt(strid));
                String strnome = menu.readInput("Entre com o novo nome do aluno [" + aux.getNome() + "]:");
                String strsobrenome = menu.readInput("Entre com o novo sobrenome do aluno [" +aux.getSobrenome() + "]:");
                aux.setNome(strnome);
                aux.setSobrenome(strsobrenome);
                alunoDAO.atualizar(aux);
            }else if(str.equals("4")){
                System.out.println("Remove");
                String strid = menu.readInput("Entre com o id do aluno:");
                Aluno aux = alunoDAO.recuperar(Integer.parseInt(strid));
                if (aux!=null) alunoDAO.remover(aux.getId());
            }else if(str.equals("0")){
                    runMenuPrincipal = false;
            }else {
                    System.out.println("Entrada Invalida");
            }
        }
    }
}
